package com.dhcc.bpm.modules.scf.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 合同信息表实体类
 */
@Data
@TableName("scf_contract_info")
public class ScfContractInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @TableId(value = "ROW_ID", type = IdType.INPUT)
    private String rowId;

    /**
     * 合同类型（1 采购合同 2供销合同）
     */
    @TableField("CONTRACT_TYPE")
    @ExcelProperty("合同类型")
    private String contractType;

    /**
     * 合同编号
     */
    @TableField("CONTRACT_NUM")
    @ExcelProperty("合同编号")
    private String contractNum;

    /**
     * 签订日期
     */
    @TableField("SIGN_DATE")
    @ExcelProperty("签订日期")
    private String signDate;

    /**
     * 甲方编号-对应主体编号&&批量导入解析到名称后查询对应主体表获取主体编号重新赋值
     */
    @TableField("PARTY_A_NUM")
    @ExcelProperty("甲方")
    private String partyANum;

    /**
     * 甲方联系人名称
     */
    @TableField("CONTACTS_A")
    @ExcelProperty("甲方联系人")
    private String contactsA;

    /**
     * 甲方联系人电话
     */
    @TableField("TELEPHONE_A")
    @ExcelProperty("甲方联系电话")
    private String telephoneA;

    /**
     * 乙方编号-对应主体编号&&批量导入解析到名称后查询对应主体表获取主体编号重新赋值
     */
    @TableField("PARTY_B_NUM")
    @ExcelProperty("乙方")
    private String partyBNum;

    /**
     * 乙方联系人名称
     */
    @TableField("CONTACTS_B")
    @ExcelProperty("乙方联系人")
    private String contactsB;

    /**
     * 乙方联系电话
     */
    @TableField("TELEPHONE_B")
    @ExcelProperty("乙方联系电话")
    private String telephoneB;

    /**
     * 商品品类（需要添加对应的字段名）
     */
    @TableField("SPEC_NAME")
    @ExcelProperty("商品类型")
    private String specName;

    /**
     * 合同生效日期
     */
    @TableField("START_DATE")
    @ExcelProperty("合同生效日期")
    private String startDate;

    /**
     * 合同时效日期
     */
    @TableField("END_DATE")
    @ExcelProperty("合同失效日期")
    private String endDate;

    /**
     * 合同金额
     */
    @TableField("AMOUNT")
    @ExcelProperty("合同总额")
    @JsonSerialize(using = ToStringSerializer.class, nullsUsing = NullSerializer.class)
    private BigDecimal amount;

    /**
     * 录入人
     */
    @TableField("RECORDER")
    private String recorder;

    /**
     * 录入日期
     */
    @TableField("RECORD_DATE")
    private String recordDate;

    /**
     * 录入时间
     */
    @TableField("RECORD_TIME")
    private String recordTime;

    @TableField("ORG_CODE")
    @ExcelProperty("所属公司编码")
    private String orgCode;
}
